// Fun-Sport 微信小程序入口文件
// 连接Java后端API: http://localhost:8080/api

App({
  onLaunch() {
    console.log('Fun-Sport 小程序启动');
    
    // 展示本地存储能力
    const logs = wx.getStorageSync('logs') || [];
    logs.unshift(Date.now());
    wx.setStorageSync('logs', logs);

    // 检查登录状态
    this.checkLoginStatus();

    // 自动登录
    this.autoLogin();
  },

  /**
   * 全局数据
   */
  globalData: {
    userInfo: null,
    token: null,
    // API基础地址 - 指向Java后端
    apiBaseUrl: 'http://localhost:8080/api/mobile',
    // 或生产环境
    // apiBaseUrl: 'https://api.funsport.com/api/mobile',
  },

  /**
   * 检查登录状态
   */
  checkLoginStatus() {
    const token = wx.getStorageSync('token');
    const userInfo = wx.getStorageSync('userInfo');
    
    if (token && userInfo) {
      this.globalData.token = token;
      this.globalData.userInfo = userInfo;
      console.log('已登录:', userInfo.nickname);
    } else {
      console.log('未登录');
    }
  },

  /**
   * 自动登录
   */
  autoLogin() {
    // 如果已经有token，不需要重新登录
    if (this.globalData.token) {
      return;
    }

    // 调用微信登录
    wx.login({
      success: res => {
        if (res.code) {
          console.log('获取code成功:', res.code);
          // 发送 res.code 到后台换取 token
          this.wechatLogin(res.code);
        } else {
          console.error('获取code失败:', res.errMsg);
        }
      },
      fail: err => {
        console.error('wx.login失败:', err);
      }
    });
  },

  /**
   * 微信登录
   */
  wechatLogin(code) {
    const authApi = require('./api/auth');
    
    authApi.wechatLogin(code)
      .then(data => {
        // 保存token和用户信息
        this.globalData.token = data.token;
        this.globalData.userInfo = data.userInfo;
        
        wx.setStorageSync('token', data.token);
        wx.setStorageSync('userInfo', data.userInfo);
        
        console.log('登录成功:', data.userInfo.nickname);
        
        // 发送登录成功事件
        this.triggerEvent('loginSuccess', data);
      })
      .catch(err => {
        console.error('登录失败:', err);
      });
  },

  /**
   * 登出
   */
  logout() {
    this.globalData.token = null;
    this.globalData.userInfo = null;
    
    wx.removeStorageSync('token');
    wx.removeStorageSync('userInfo');
    
    console.log('已登出');
    
    // 跳转到登录页
    wx.reLaunch({
      url: '/pages/index/index'
    });
  },

  /**
   * 触发全局事件
   */
  triggerEvent(eventName, data) {
    // 可以使用事件总线或其他方式通知其他页面
    console.log(`全局事件: ${eventName}`, data);
  }
});
